// index.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Component({
  data: {
    motto: 'Hello World',
    userInfo: {
      avatarUrl: defaultAvatarUrl,
      nickName: '',
    },
    hasUserInfo: false,
    canIUseGetUserProfile: wx.canIUse('getUserProfile'),
    // 我能使用用户名组件吗
    // canIUseNicknameComp: wx.canIUse('input.type.nickname'),
    canIUseNicknameComp: false,
  },
  methods: {
    // 事件处理函数
    bindViewTap() {
      wx.navigateTo({
        url: '../logs/logs'
      })
    },
    // 头像选择完成的事件回调
    onChooseAvatar(e) {
      console.log('onChooseAvatar e', e)
      const { avatarUrl } = e.detail
      const { nickName } = this.data.userInfo
      // setData 修改数据的完成之后会引起页面重新渲染
      this.setData({
        "userInfo.avatarUrl": avatarUrl,
        hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
      })
    },
    onInputChange(e) {
      console.log('onInputChange e', e)
      const nickName = e.detail.value
      const { avatarUrl } = this.data.userInfo
      this.setData({
        "userInfo.nickName": nickName,
        hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
      })
    },
    getUserProfile(e) {
      console.log('getUserProfile e', e)
      // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗


      /**
       * 最新的获取用户头像昵称的方式是什么？
       *    1. wx.getUserInfo
       *    2. wx.getUserProfile
       *    3. 头像昵称填写能力【最新的】
       *        button    open-type="chooseAvatar" bind:chooseavatar
       *        input  type="nickname"
       *    https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801
       *    https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01
       */

      wx.getUserProfile({
        desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
        success: (res) => {
          console.log('getUserProfile res', res)
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    },
  },
})
